package com.xoa.controller.easyReport;

import com.xoa.model.easyReport.RepTable;
import com.xoa.service.easyReport.RepTableService;
import com.xoa.util.ToJson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

/**
 * 创建人: liujian
 * 创建时间: 2020/2/5
 * 描述:报表
 */
@Controller
@RequestMapping("/repTable")
public class repTableController {

    @Autowired
    RepTableService repTableService;

    /**
     * 创建人: liujian
     * 创建时间: 2020/2/5
     * 描述: 新建一个报表
     * 参数: [request, repTable]
     * 返回值: com.xoa.util.ToJson<com.xoa.model.easyReport.RepTable>
     */
    @ResponseBody
    @RequestMapping("/inserRepTable")
    public ToJson<RepTable> inserRepTable(RepTable repTable) {
        return repTableService.insertRepTable(repTable);
    }

    /**
     * 创建人: liujian
     * 创建时间: 2020/2/5
     * 描述: 编辑报表（修改报表状态和名称）
     * 参数: [request, repTable]
     * 返回值: com.xoa.util.ToJson<com.xoa.model.easyReport.RepTable>
     */
    @ResponseBody
    @RequestMapping("/updateRepTable")
    public ToJson<RepTable> updateRepTable(RepTable repTable) {
        return repTableService.updateRepTable(repTable);
    }

    /**
     * 创建人: liujian
     * 创建时间: 2020/2/5
     * 描述: 删除报表
     * 参数: [request, repTable]
     * 返回值: com.xoa.util.ToJson<com.xoa.model.easyReport.RepTable>
     */
    @ResponseBody
    @RequestMapping("/deleteRepTable")
    public ToJson<RepTable> deleteRepTable(Integer repTableId) {
        return repTableService.deleteRepTable(repTableId);
    }

    /**
     * 创建人: liujian
     * 创建时间: 2020/2/5
     * 描述: 查询报表
     * 参数: type = 0 数据上报（进行中和有查看权限的）type = 1 数据汇总（除未启用外，且有管理权限的）
     * 返回值: com.xoa.util.ToJson<com.xoa.model.easyReport.RepTable>
     */
    @ResponseBody
    @RequestMapping("/findRepTable")
    public ToJson<RepTable> findRepTable(HttpServletRequest request , RepTable repTable,String type) {
        return repTableService.findRepTable(request,repTable,type);
    }

    /**
     * 创建人: liujian
     * 创建时间: 2020/3/5
     * 描述: 克隆报表
     * 参数: [request, repTableId, repTableName]
     * 返回值: com.xoa.util.ToJson<com.xoa.model.easyReport.RepTable>
     */
    @ResponseBody
    @RequestMapping("/cloneRepTable")
    public ToJson<RepTable> cloneRepTable(HttpServletRequest request , Integer repTableId, String repTableName) {
        return repTableService.cloneRepTable(repTableId,repTableName);
    }


    /**
     * 创建人: liujian
     * 创建时间: 2020/2/5
     * 描述: 根据主键查询报表
     * 参数: [request, repTable]
     * 返回值: com.xoa.util.ToJson<com.xoa.model.easyReport.RepTable>
     */
    @ResponseBody
    @RequestMapping("/findRepTableById")
    public ToJson<RepTable> findRepTableById(HttpServletRequest request, Integer repTableId) {
        return repTableService.findRepTableById(repTableId);
    }

    /**
     * 创建作者: 刘建
     * 创建日期: 2020-07-15 13:41
     * 方法介绍: 查询报表名称是否已经出现过了
     * @param tableName
     * @return com.xoa.util.ToJson<com.xoa.model.easyReport.RepTable>
     */
    @ResponseBody
    @RequestMapping("/checkTableName")
    public ToJson checkTableName(String tableName) {
        return repTableService.checkTableName(tableName);
    }

}
